/*****************************************
**  Nom : RASPAUD - COLLOMB				**
**	Nom du fichier : DrlmntPartie.h		**
**	Description : 						**
**										**
**										**
**	Date : 20/08/2014				    **
**  Statut : Release					**
*****************************************/

/*****************************************
**  Zone de declaration des includes    **
*****************************************/

/*****************************************
**  Zone de declaration des constantes  **
*****************************************/

/*****************************************
**  Zone de declaration des structures  **
*****************************************/

/************************************************
**  Zone de declaration des Prototypes PUBLIC  **
*************************************************/
/*************************************************************************
**  [Fonction DrlmntPartie_ConvCarte]                					**
**  Convertie les chiffres contenuent dans les structures "S_CARTE" en	** 
**	chaine de caractere pour pouvoir les lires et les afficher durant	**
**  une partie									    				    **
**																		**
**	Entrees : S_CARTE* carte - Carte à afficher	                        **
**			: FIFO_PAQUET paquet - FIFO dans laquel est presente la		**
**			  carte Ã  convertir										**
**																		**
**	Sorties : int														**
**									                                    **
**************************************************************************/
int DrlmntPartie_ConvCarte(S_CARTE* carte,FIFO_PAQUET paquet);


/*************************************************************************
**  [Fonction DrlmntPartie_EchgFIFOin]                					**
**  Prend la premiere carte d'une FIFO et la transfert en premiere 		**
**  place dans une autre FIFO					    				    **
**																		**
**	Entrees : FIFO_PAQUET *paquet_donneur 		                        **
**			: FIFO_PAQUET *paquet_receveur								**
**																		**
**	Sorties : int														**
**					-1 si erreur										**
**					 0 si ok											**
**									                                    **
**************************************************************************/
int DrlmntPartie_EchgFIFOin(FIFO_PAQUET *paquet_donneur, FIFO_PAQUET *paquet_receveur);


/*************************************************************************
**  [Fonction DrlmntPartie_EchgFIFOout]                					**
**  Prend la premiere carte d'une FIFO et la transfert en premiere 		**
**  place dans une autre FIFO					    				    **
**																		**
**	Entrees : FIFO_PAQUET *paquet_donneur 		                        **
**			: FIFO_PAQUET *paquet_receveur								**
**																		**
**	Sorties : int														**
**					-1 si erreur										**
**					 0 si ok											**
**																		**
**************************************************************************/
int DrlmntPartie_EchgFIFOout(FIFO_PAQUET *paquet_donneur, FIFO_PAQUET *paquet_receveur);


/*************************************************************************
**  [Fonction DrlmntPartie_Random]    	            					**
**   Renvoi un nombre aleatoire compris entre 1 et le max				**
**																		**	
**	 srand(time(NULL)); --> cette ligne doit apparaitre dans le			**
**   programme "main" avant d'appeler la fonction "DrlmntPartie_Random" **
**																		**
**	Entrees : int nombre_joueur 		 		                        **
**																		**
**																		**
**	Sorties : int														**
**					Nombre aleatoire									**
**																		**
**************************************************************************/
int DrlmntPartie_Random(int nombre_joueur);


/*************************************************************************
**  [Fonction DrlmntPartie_ReturnCarte]             					**
**   Renvoi les 3 premieres cartes du paquet							**
**																		**	
**																		**
**	Entrees : FIFO_PAQUET *paquet 										**
**			: int valeur_cartes[] - Tableau avec au moins 3 cases, 		**
**				qui contiendra les valeurs des 3 dernieres cartes       **
**																		**
**																		**
**	Sorties : int														**
**					-1 si erreur										**
**					 0 si ok											**
**																		**
**************************************************************************/
int DrlmntPartie_ReturnCarte(FIFO_PAQUET *paquet, int valeur_cartes[]);

/*************************************************************************
**  [Fonction DrlmntPartie_ViderTable]             					    **
**   Renvoi les 3 premieres cartes du paquet							**
**																		**	
**																		**
**	Entrees : FIFO_PAQUET *table										**
**			: FIFO_PAQUET *paquet_receveur						 		**
**																        **
**																		**
**																		**
**	Sorties : int														**
**					-1 si erreur										**
**					 0 si ok											**
**																		**
**************************************************************************/
int DrlmntPartie_ViderTable(FIFO_PAQUET *paquet, FIFO_PAQUET *paquet_receveur);


/*************************************************************************
**  [Fonction DrlmntPartie_AfficheFIFO]             					**
**   Renvoi les 3 premieres cartes du paquet							**
**																		**	
**																		**
**	Entrees : FIFO_PAQUET *FIFO											**
**																 		**
**																        **
**																		**
**																		**
**	Sorties : int														**
**					-1 si erreur										**
**					 0 si ok											**
**																		**
**************************************************************************/
int DrlmntPartie_AfficheFIFO(FIFO_PAQUET *FIFO);

/*************************************************************************
**  [Fonction DrlmntPartie_MAJfaits]             						**
**   Met a jour la liste de fait en fonction des 3 derniere cartes		**
**	 sur la table														**	
**																		**
**	Entrees : ST_RES* Tete de la chaine de resultats					**
**			: ST_FAITS* Tete de la chaine de faits						**
**																		**
**																		**
**	Sorties : int														**
**				-1 Erreur												**
**				 0 OK													**
**																		**
**************************************************************************/
int DrlmntPartie_MAJfaits(FIFO_PAQUET* Table,ST_FAITS* Tete_fait);

/*************************************************************************
**  [Fonction DrlmntPartie_CLEANfaits]             						**
**   Nettoie la liste des faits											**	
**																		**
**	Entrees	: ST_FAITS* Tete de la chaine de faits				   		**
**																		**
**																		**
**																		**
**	Sorties : int														**
**				-1 Erreur												**
**				 0 OK													**
**																		**
**************************************************************************/
int DrlmntPartie_CLEANfaits(ST_FAITS* Tete_fait);